package ninder.system.construct.servelets;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.google.gson.Gson;

import ninder.system.control.ServiceNinder;
import ninder.system.model.Atividade;
import ninder.system.model.Paciente;

public class ServiceConstructDataBase extends HttpServlet {

	private static final long serialVersionUID = 1L;
	
	private static final String CREATE_USER = "newUser";
	
	private static final String CREATE_ATIVIDADE = "newAtividade";
	
	private static final String GET_ATIVIDADES = "loadAtividades";
	
	private static final String OPERATION = "action";
			
	@Override  
    protected void service(HttpServletRequest request, HttpServletResponse response)  
            throws ServletException, IOException {
	
		 String acao = request.getParameter(OPERATION);
		 
		 
		 if(acao.equals(CREATE_USER)){
			 
			 try {
				 
				 String nome = request.getParameter("nome");
				 String sexo = request.getParameter("sexo");
				 String idade = request.getParameter("idade");
				 
				 Paciente p = new Paciente();
				 
				 p.setNome(nome);
				 
				 p.setSexo(sexo);
				 
				 p.setIdade(idade);
				 
				int i =  ServiceNinder.getInstance().createPaciente(p);
				
				Gson g = new Gson();
			     
				String json;
				 
				json = g.toJson(ServiceNinder.getInstance().getPacienteManager().getPaciente(i));
				   
				response.setContentType("application/json");

			    PrintWriter out = response.getWriter();
		          
			    out.print(json);
			    
			    out.flush();
				
			} catch (Exception e) {
				// TODO: handle exception
			}
					 
			 
		 }else if(acao.equals(CREATE_ATIVIDADE)){
			 
			 String id = request.getParameter("id");
			 String descricao = request.getParameter("descricao");
			 String data = request.getParameter("data");
			 String duracao = request.getParameter("duracao");
			 String percurso = request.getParameter("percurso");
			 String intensidade = request.getParameter("intensidade");
			 
			 Atividade a = new Atividade();
			 a.setId_paciente(new Integer(id));
			 a.setDescricao(descricao);
			 a.setDuracao(new Double(duracao));
			 a.setIntensidade(new Double(intensidade));
			 a.setPercuso(new Double(percurso));
			 a.setData(new Date());
			 
			 ServiceNinder.getInstance().createAtividade(a);
			 
			 Gson g = new Gson();
		     
			 String json;
			 
			 json = g.toJson(a);
			   
				response.setContentType("application/json");

			    PrintWriter out = response.getWriter();
		          
			    out.print(json);
			    
			    out.flush();
			 
			 
		 }else if(acao.equals(GET_ATIVIDADES)){
			 
			 String id = request.getParameter("id");
			 
             Gson g = new Gson();
		     
			 String json;
			 
			 try {
				
				 json = g.toJson(ServiceNinder.getInstance().getAtividadeManager().getListUser(id));
				
				response.setContentType("application/json");

			    PrintWriter out = response.getWriter();
		          
			    out.print(json);
			    
			    out.flush();
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			 
		 }
		 
		 
		
	}

}
